<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="http://schemas.datacontract.org/2004/07/Common" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Common" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="http://localhost:26753/FaultService.svc?xsd=xsd3" namespace="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" />
  <xs:import schemaLocation="http://localhost:26753/FaultService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
  <xs:complexType name="ArrayOfUserProductFault">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="UserProductFault" nillable="true" type="tns:UserProductFault" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfUserProductFault" nillable="true" type="tns:ArrayOfUserProductFault" />
  <xs:complexType name="UserProductFault">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q1="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q1:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Date" nillable="true" type="xs:dateTime" />
          <xs:element minOccurs="0" name="Fault" nillable="true" type="tns:Fault" />
          <xs:element minOccurs="0" name="FaultDetail" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="FaultID" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="FaultLogs" nillable="true" type="tns:ArrayOfFaultLog" />
          <xs:element minOccurs="0" name="FaultReference" nillable="true" type="q1:EntityReferenceOfFaultKmbgGhhj" />
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="Order" nillable="true" type="tns:Order" />
          <xs:element minOccurs="0" name="OrderID" nillable="true" type="ser:guid" />
          <xs:element minOccurs="0" name="OrderReference" nillable="true" type="q1:EntityReferenceOfOrderKmbgGhhj" />
          <xs:element minOccurs="0" name="Product" nillable="true" type="tns:Product" />
          <xs:element minOccurs="0" name="ProductID" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="ProductReference" nillable="true" type="q1:EntityReferenceOfProductKmbgGhhj" />
          <xs:element minOccurs="0" name="User" nillable="true" type="tns:User" />
          <xs:element minOccurs="0" name="UserName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="UserReference" nillable="true" type="q1:EntityReferenceOfUserKmbgGhhj" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="UserProductFault" nillable="true" type="tns:UserProductFault" />
  <xs:complexType name="Fault">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q2="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q2:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Description" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Fault1" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="UserProductFaults" nillable="true" type="tns:ArrayOfUserProductFault" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Fault" nillable="true" type="tns:Fault" />
  <xs:complexType name="ArrayOfFaultLog">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FaultLog" nillable="true" type="tns:FaultLog" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfFaultLog" nillable="true" type="tns:ArrayOfFaultLog" />
  <xs:complexType name="FaultLog">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q3="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q3:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="FaultID" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="UserProductFault" nillable="true" type="tns:UserProductFault" />
          <xs:element minOccurs="0" name="UserProductFaultReference" nillable="true" type="q3:EntityReferenceOfUserProductFaultKmbgGhhj" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="FaultLog" nillable="true" type="tns:FaultLog" />
  <xs:complexType name="Order">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q4="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q4:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Date" type="xs:dateTime" />
          <xs:element minOccurs="0" name="ID" type="ser:guid" />
          <xs:element minOccurs="0" name="OrderDetails" nillable="true" type="tns:ArrayOfOrderDetail" />
          <xs:element minOccurs="0" name="User" nillable="true" type="tns:User" />
          <xs:element minOccurs="0" name="UserName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="UserProductFaults" nillable="true" type="tns:ArrayOfUserProductFault" />
          <xs:element minOccurs="0" name="UserReference" nillable="true" type="q4:EntityReferenceOfUserKmbgGhhj" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Order" nillable="true" type="tns:Order" />
  <xs:complexType name="ArrayOfOrderDetail">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="OrderDetail" nillable="true" type="tns:OrderDetail" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfOrderDetail" nillable="true" type="tns:ArrayOfOrderDetail" />
  <xs:complexType name="OrderDetail">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q5="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q5:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="Order" nillable="true" type="tns:Order" />
          <xs:element minOccurs="0" name="OrderID" type="ser:guid" />
          <xs:element minOccurs="0" name="OrderReference" nillable="true" type="q5:EntityReferenceOfOrderKmbgGhhj" />
          <xs:element minOccurs="0" name="Product" nillable="true" type="tns:Product" />
          <xs:element minOccurs="0" name="ProductID" type="xs:int" />
          <xs:element minOccurs="0" name="ProductReference" nillable="true" type="q5:EntityReferenceOfProductKmbgGhhj" />
          <xs:element minOccurs="0" name="Quantity" type="xs:int" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="OrderDetail" nillable="true" type="tns:OrderDetail" />
  <xs:complexType name="Product">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q6="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q6:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Category" nillable="true" type="tns:Category" />
          <xs:element minOccurs="0" name="CategoryID" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="CategoryReference" nillable="true" type="q6:EntityReferenceOfCategoryKmbgGhhj" />
          <xs:element minOccurs="0" name="Comments" nillable="true" type="tns:ArrayOfComment" />
          <xs:element minOccurs="0" name="DateListed" nillable="true" type="xs:dateTime" />
          <xs:element minOccurs="0" name="Features" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="Image" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="OrderDetails" nillable="true" type="tns:ArrayOfOrderDetail" />
          <xs:element minOccurs="0" name="Price" nillable="true" type="xs:double" />
          <xs:element minOccurs="0" name="StockAmount" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="UserProductFaults" nillable="true" type="tns:ArrayOfUserProductFault" />
          <xs:element minOccurs="0" name="UserProductRatings" nillable="true" type="tns:ArrayOfUserProductRating" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Product" nillable="true" type="tns:Product" />
  <xs:complexType name="Category">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q7="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q7:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="CategoryName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="Products" nillable="true" type="tns:ArrayOfProduct" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Category" nillable="true" type="tns:Category" />
  <xs:complexType name="ArrayOfProduct">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Product" nillable="true" type="tns:Product" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfProduct" nillable="true" type="tns:ArrayOfProduct" />
  <xs:complexType name="ArrayOfComment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Comment" nillable="true" type="tns:Comment" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfComment" nillable="true" type="tns:ArrayOfComment" />
  <xs:complexType name="Comment">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q8="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q8:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="Product" nillable="true" type="tns:Product" />
          <xs:element minOccurs="0" name="ProductID" type="xs:int" />
          <xs:element minOccurs="0" name="ProductReference" nillable="true" type="q8:EntityReferenceOfProductKmbgGhhj" />
          <xs:element minOccurs="0" name="User" nillable="true" type="tns:User" />
          <xs:element minOccurs="0" name="UserComment" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="UserName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="UserReference" nillable="true" type="q8:EntityReferenceOfUserKmbgGhhj" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Comment" nillable="true" type="tns:Comment" />
  <xs:complexType name="User">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q9="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q9:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Carts" nillable="true" type="tns:ArrayOfCart" />
          <xs:element minOccurs="0" name="Comments" nillable="true" type="tns:ArrayOfComment" />
          <xs:element minOccurs="0" name="Country" nillable="true" type="tns:Country" />
          <xs:element minOccurs="0" name="CountryID" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="CountryReference" nillable="true" type="q9:EntityReferenceOfCountryKmbgGhhj" />
          <xs:element minOccurs="0" name="Email" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="FirstName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="HouseNo" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="LastName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="MobileNo" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="Orders" nillable="true" type="tns:ArrayOfOrder" />
          <xs:element minOccurs="0" name="Password" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Pin" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="Roles" nillable="true" type="tns:ArrayOfRole" />
          <xs:element minOccurs="0" name="StreetName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Town" nillable="true" type="tns:Town" />
          <xs:element minOccurs="0" name="TownName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="TownReference" nillable="true" type="q9:EntityReferenceOfTownKmbgGhhj" />
          <xs:element minOccurs="0" name="UserName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="UserProductFaults" nillable="true" type="tns:ArrayOfUserProductFault" />
          <xs:element minOccurs="0" name="UserProductRatings" nillable="true" type="tns:ArrayOfUserProductRating" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="User" nillable="true" type="tns:User" />
  <xs:complexType name="ArrayOfCart">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Cart" nillable="true" type="tns:Cart" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfCart" nillable="true" type="tns:ArrayOfCart" />
  <xs:complexType name="Cart">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q10="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q10:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="ProductID" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="Quantity" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="User" nillable="true" type="tns:User" />
          <xs:element minOccurs="0" name="UserName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="UserReference" nillable="true" type="q10:EntityReferenceOfUserKmbgGhhj" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Cart" nillable="true" type="tns:Cart" />
  <xs:complexType name="Country">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q11="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q11:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="CountryName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="Towns" nillable="true" type="tns:ArrayOfTown" />
          <xs:element minOccurs="0" name="Users" nillable="true" type="tns:ArrayOfUser" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Country" nillable="true" type="tns:Country" />
  <xs:complexType name="ArrayOfTown">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Town" nillable="true" type="tns:Town" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfTown" nillable="true" type="tns:ArrayOfTown" />
  <xs:complexType name="Town">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q12="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q12:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Country" nillable="true" type="tns:Country" />
          <xs:element minOccurs="0" name="CountryID" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="CountryReference" nillable="true" type="q12:EntityReferenceOfCountryKmbgGhhj" />
          <xs:element minOccurs="0" name="ID" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="TownName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Users" nillable="true" type="tns:ArrayOfUser" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Town" nillable="true" type="tns:Town" />
  <xs:complexType name="ArrayOfUser">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="User" nillable="true" type="tns:User" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfUser" nillable="true" type="tns:ArrayOfUser" />
  <xs:complexType name="ArrayOfOrder">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Order" nillable="true" type="tns:Order" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfOrder" nillable="true" type="tns:ArrayOfOrder" />
  <xs:complexType name="ArrayOfRole">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Role" nillable="true" type="tns:Role" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfRole" nillable="true" type="tns:ArrayOfRole" />
  <xs:complexType name="Role">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q13="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q13:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="Menus" nillable="true" type="tns:ArrayOfMenu" />
          <xs:element minOccurs="0" name="RoleName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Users" nillable="true" type="tns:ArrayOfUser" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Role" nillable="true" type="tns:Role" />
  <xs:complexType name="ArrayOfMenu">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Menu" nillable="true" type="tns:Menu" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfMenu" nillable="true" type="tns:ArrayOfMenu" />
  <xs:complexType name="Menu">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q14="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q14:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="ParentID" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="Position" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="Roles" nillable="true" type="tns:ArrayOfRole" />
          <xs:element minOccurs="0" name="Title" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="URL" nillable="true" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Menu" nillable="true" type="tns:Menu" />
  <xs:complexType name="ArrayOfUserProductRating">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="UserProductRating" nillable="true" type="tns:UserProductRating" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfUserProductRating" nillable="true" type="tns:ArrayOfUserProductRating" />
  <xs:complexType name="UserProductRating">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q15="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q15:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="ID" type="xs:int" />
          <xs:element minOccurs="0" name="Product" nillable="true" type="tns:Product" />
          <xs:element minOccurs="0" name="ProductID" type="xs:int" />
          <xs:element minOccurs="0" name="ProductReference" nillable="true" type="q15:EntityReferenceOfProductKmbgGhhj" />
          <xs:element minOccurs="0" name="Rating" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="User" nillable="true" type="tns:User" />
          <xs:element minOccurs="0" name="UserName" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="UserReference" nillable="true" type="q15:EntityReferenceOfUserKmbgGhhj" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="UserProductRating" nillable="true" type="tns:UserProductRating" />
  <xs:complexType name="ArrayOfFault">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Fault" nillable="true" type="tns:Fault" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfFault" nillable="true" type="tns:ArrayOfFault" />
</xs:schema>